//
//  CTPPaoPaoView.m
//  LittleNotes
//
//  Created by 檀志文 on 16/5/21.
//  Copyright © 2016年 ios檀志文. All rights reserved.
//

#import "CTPPaoPaoView.h"

/// 箭头(嘴儿)的高度
static const CGFloat arrowHeight = 6;
//static const CGFloat leftViewWidth = 50;
//static const CGFloat margin = 8;


@implementation CTPPaoPaoView

- (void)drawRect:(CGRect)rect{
    // 获取当前图形上下文对象
    CGContextRef context  = UIGraphicsGetCurrentContext();
    
    // 开始绘制背景
    // 1. 存储当前上下文状态(上下文状态压栈)
    CGContextSaveGState(context);
    // 设置线宽
    CGContextSetLineWidth(context, 1);
    // 设置颜色
    [[UIColor greenColor] set];
    // 绘制线条
    // 获取大小
    rect  = self.bounds;
    CGFloat minX = CGRectGetMinX(rect);
    CGFloat midY = CGRectGetMidY(rect)*0.4;
    CGFloat maxX = CGRectGetMaxX(rect);
    CGFloat minY = CGRectGetMinY(rect);
    CGFloat maxY = CGRectGetMaxY(rect);
    //  绘制箭头
    //  把画笔移动到嘴儿开始的右边
    CGContextMoveToPoint(context,minX+arrowHeight, midY+arrowHeight);
    //  添加到箭头底部的线
    CGContextAddLineToPoint(context,minX,midY);
    //  添加从箭头底部,到箭头左下方的线
    CGContextAddLineToPoint(context, minX+arrowHeight, midY-arrowHeight);
    
    //  绘制左下角的弧线
    CGFloat radius = 10;
    //  添加从当前点到(x1,y1)和(x1,y1) 到 (x2,y2) 相切,半径为 redius的弧线
    CGContextAddArcToPoint(context, minX+arrowHeight, minY, maxX, minY, radius);
    //  添加左上角的弧线
    CGContextAddArcToPoint(context, maxX, minY, maxX, maxY, radius);
    //  添加右上角的弧线
    CGContextAddArcToPoint(context, maxX, maxY, minX+arrowHeight,maxY, radius);
    //  添加右下角的弧线
    CGContextAddArcToPoint(context,minX+arrowHeight, maxY, minX, midY,radius);
    //  闭合路径
    CGContextClosePath(context);
    //  实心绘制
    CGContextFillPath(context);
    
    // 2. 恢复最新的上下状态信息(上下文出栈)
    CGContextRestoreGState(context);

}

@end
